package ofertas;

import static org.junit.Assert.*;
import static org.mockito.Mockito.*;

import java.util.List;

import org.junit.Before;
import org.junit.Test;

import productos.Presentacion;

public class TestOfertaProducto {

	OfertaProducto hoja1;
	OfertaProducto hoja2;
	List<Presentacion> listaDePresentacion;
	Presentacion producto;

	@SuppressWarnings("unchecked")
	@Before
	public void setUp() throws Exception {

		listaDePresentacion = mock(List.class);

	}

	@Test
	public void testInstacionUnaHojaDeUnaOfertaYLaListaDePresentacionesYElPorcentajeCorresponden() {
		hoja2 = new OfertaProducto(listaDePresentacion, 0.3);

		assertNotNull(hoja2.productosOfertados());
		assertTrue(0.3 == hoja2.porcentajeDeOferta());

	}

	@Test
	public void testSiRecorroLaHojaYElProductoNoEstaOfertadoElPorcentajeDeOfertaEsCero() {

		Presentacion producto1 = mock(Presentacion.class);
		listaDePresentacion.add(producto1);
		when(listaDePresentacion.contains(producto1)).thenReturn(true);

		hoja2 = new OfertaProducto(listaDePresentacion, 0.3);
		assertEquals(0.3, hoja2.valorOfertaParaProducto(producto1), 0D);

	}

}
